/*
 * persona.cpp
 *
 */

#include <exception>
#include "Argv.h"
#include "StringUtils.h"
#include "logger.h"
#include "Puerta.h"

int main(int argc, char **argv)
{
    Argv arguments;
    PersonaId personaId;
    PuertaId puertaId;

    arguments.setArgv(argv);

    if(argc > 1)
    	personaId = StringUtils::StringToNumber<int>(arguments.getArg(1));
    else
    	personaId = 2;

    if(argc > 2)
    	puertaId = StringUtils::StringToNumber<int>(arguments.getArg(2));
    else
    	puertaId = 1;

    std::stringstream ss;
    ss<<"Persona "<< personaId;

	CLogger::create(ss.str());
	CLogger::setLevel(LogLevelEnum::DEBUG);

	try
	{
		API::Puerta puerta(API::Puerta::CLIENT);

		API::Persona persona;
		int err;

		persona.m_id = personaId;

		//TODO ver si entrar parque devuelve id sala
		if(!puerta.entrarParque(puertaId,persona,err))
			return 0;
	}
	catch (std::exception &e)
	{
		CLogger::log(e.what(),LogLevelEnum::FATAL);
	}
	catch (std::exception *e)
	{
		CLogger::log(e->what(),LogLevelEnum::FATAL);
	}
	return 0;
}
